// 对于axios模板进行二次封装
import axios from 'axios';

//进度条的业务
import nprogress from 'nprogress'
// 使用进度条的时候，需要把他的样式引入
import 'nprogress/nprogress.css'

// 请求拦截器：当你请求的时候触发(服务器没有做出响应)!
axios.interceptors.request.use((config)=>{
    // 请求拦截器
    //config配置对象,身上有一个很重要东西,请求头****
    console.log('捕获到发请求');

    //进度条开始动
    nprogress.start();

    return config;

});


// 响应拦截器：当服务器数据响应成功触发
axios.interceptors.response.use((res)=>{
    // 响应成功
    console.log('捕获到请求成功');
    
    // 进度条结束
    nprogress.done();

    // 一般会简化服务器返回的数据【因为服务器返回的数据一般需要的data:右侧数据】
    return res.data;
},()=>{
    // 响应失败
    // 终止promise链
    return new Promise();
});




// 对外暴露
export default axios;